Problem Note 46010: Concatenating PDF files generates the error message "Unknown operator: endoobj"
PDF files that are generated with the third maintenance release of SAS® 9.2 (TS2M3) and higher contain an extraneous end tag
endoobj. The text has no effect on the look of the output when the file is opened in Adobe Acrobat Reader. However, when an attempt is made to append these PDF files together outside of SAS, the following error message might be generated:
unknown operator: endoobj
To circumvent the problem, use PROC TEMPLATE and PROC REGISTRY to remove the fonts that were supplied by SAS from the PDF file. This workaround is illustrated with the sample program on the
Full Code tab.
Click the Hot Fix tab in this note to access the hot fix for this issue.
Operating System and Release Information
SAS System | Base SAS | z/OS | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows XP 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft® Windows® for x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2003 Datacenter Edition | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2003 Enterprise Edition | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2003 Standard Edition | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2003 for x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2008 | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows Server 2008 for x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Microsoft Windows XP Professional | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Enterprise 32 bit | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Enterprise x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Home Premium 32 bit | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Home Premium x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Professional 32 bit | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Professional x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Ultimate 32 bit | 9.2 TS2M3 | 9.3 TS1M2 |
Windows 7 Ultimate x64 | 9.2 TS2M3 | 9.3 TS1M2 |
Windows Vista | 9.2 TS2M3 | 9.3 TS1M2 |
Windows Vista for x64 | 9.2 TS2M3 | 9.3 TS1M2 |
64-bit Enabled AIX | 9.2 TS2M3 | 9.3 TS1M2 |
64-bit Enabled HP-UX | 9.2 TS2M3 | 9.3 TS1M2 |
64-bit Enabled Solaris | 9.2 TS2M3 | 9.3 TS1M2 |
HP-UX IPF | 9.2 TS2M3 | 9.3 TS1M2 |
Linux | 9.2 TS2M3 | 9.3 TS1M2 |
Linux for x64 | 9.2 TS2M3 | 9.3 TS1M2 |
OpenVMS on HP Integrity | 9.2 TS2M3 | 9.3 TS1M2 |
Solaris for x64 | 9.2 TS2M3 | 9.3 TS1M2 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
The sample code below creates a style that removes most of the fonts from a PDF file. The PROC REGISTRY code is necessary to complete the task by substituting the Courier font for the SAS font Cumberland AMT.
proc template;
define style styles.noSASfonts;
parent = styles.printer;
replace fonts /
'TitleFont2' = ("Times",12pt,bold italic)
'TitleFont' = ("Times",13pt,bold italic)
'StrongFont' = ("Times",10pt,bold)
'EmphasisFont' = ("Times",10pt,italic)
'FixedEmphasisFont' = ("Courier",9pt,italic)
'FixedStrongFont' = ("Courier",9pt,bold)
'FixedHeadingFont' = ("Courier",9pt,bold)
'BatchFixedFont' = ("Courier",6.7pt)
'FixedFont' = ("Courier",9pt)
'headingEmphasisFont' = ("Times",11pt,bold italic)
'headingFont' = ("Times",11pt,bold)
'docFont' = ("Times",10pt);
end;
run;
filename source "test.sasxreg";
data _null_;
file source;
put "[ODS\FONTS]";
put '"MTmonospace"="Courier"';
run;
proc registry import=source;
run;
ods pdf file="test.pdf" notoc compress=0 style=styles.noSASfonts;
proc print data=sashelp.class;
run;
ods pdf close;
Concatenating PDF files outside of SAS might generate the error message "Unknown operator: endoobj".
Type: | Problem Note |
Priority: | medium |
Date Modified: | 2012-03-23 14:23:03 |
Date Created: | 2012-03-14 09:19:31 |